package com.turing.post.common.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * @author zxp
 */
@Remote
@Local
public interface MerchantOperBusiness {
	/**
	 * 商户操作员登录
	 * 
	 * @param merchantOper
	 *            商户操作员
	 * @return 登录成功返回实体 登录失败返回null
	 * @throws PCPSApplicationException
	 */
	public MerchantOper merchantOperLogon(MerchantOper merchantOper)
			throws PCPSApplicationException;

	/**
	 * 添加商户操作员
	 * 
	 * @param merchantOper
	 *            商户操作员
	 */
	public void insertMerchantOper(MerchantOper merchantOper)
			throws PCPSApplicationException;

	/**
	 * 修改商户操作员
	 * 
	 * @param merchantOper
	 *            商户操作员
	 * @throws PCPSApplicationException
	 */
	public void updateMerchantOper(MerchantOper merchantOper)
			throws PCPSApplicationException;

	/**
	 * 根据商户操作员主键查询商户操作员信息
	 * 
	 * @param mrchOperId
	 *            商户操作员Id
	 * @return 商户操作员信息
	 */
	public MerchantOper getMerchantOperByMrchOperId(BigInteger mrchOperId);

	/**
	 * 分页查询所有商户操作员
	 * 
	 * @param page
	 *            页数
	 * @return 商户操作员列表
	 */
	public List<MerchantOper> getMerchantOpers(Integer page);

	/**
	 * 查询所有商户操作员总数
	 * 
	 * @return 所有商户操作员总数
	 */
	public Integer getMerchantOpersCount();

	/**
	 * 根据商户号分页查询商户所属操作员
	 * 
	 * @param merchantNo
	 *            商户号
	 * @param page
	 *            页数
	 * @return 商户所属操作员列表
	 * @throws PCPSApplicationException
	 */
	public List<MerchantOper> getMerchantOpersByMerchantNo(String merchantNo,
			Integer page);

	/**
	 * 根据商户号查询商户所属操作员总数
	 * 
	 * @param merchantNo
	 *            商户号
	 * @return 商户所属操作员总数
	 */
	public Integer getMerchantOpersCountByMerchantNo(String merchantNo);

	/**
	 * 修改商户操作员密码
	 * 
	 * @param merchantOper
	 *            商户操作员
	 * @param newPassWord
	 *            新密码
	 * @throws PCPSApplicationException
	 */
	public void changeMerchantOperPwd(MerchantOper merchantOper,
			String newPassWord) throws PCPSApplicationException;

	/**
	 * 根据商户操作员登录名查询商户操作员密码问题
	 * 
	 * @param merchantOperLogonName
	 * @return
	 */
	public MerchantOper getMerchantOperQuestionByMrchOperLogonName(
			String merchantOperLogonName);

	/**
	 * 找回密码
	 * 
	 * @param merchantOper
	 *            商户操作员
	 * @throws PCPSApplicationException
	 */
	public void getLossPassword(MerchantOper merchantOper)
			throws PCPSApplicationException;

	/**
	 * 删除商户操作员
	 * 
	 * @param merchantOperId
	 *            商户操作员ID
	 * @throws PCPSApplicationException
	 */
	public void deleteMerchantOper(BigInteger merchantOperId)
			throws PCPSApplicationException;

	/**
	 * 商户操作员重置密码
	 * 
	 * @param 商户操作员对象
	 * @param 正确返回新密码
	 * @throws PCPSApplicationException
	 */
	public String resetMerchantOperPassword(PCPSWebInput webInput,
			MerchantOper merchantOper) throws PCPSApplicationException;

}
